package siscom.modelos.DAO;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import siscom.database.GerenciadorConexoes;
import siscom.modelos.CategoriaProduto;
import siscom.modelos.Marca;

/**
 *
 * @author Carlos Ribeiro
 */
public class CategoriaProdutoDAO implements DAO<CategoriaProduto> {

    private GerenciadorConexoes conexao = new GerenciadorConexoes();
    private PreparedStatement pstmt;

    @Override
    public void salvar(CategoriaProduto instancia) throws SQLException {
        String query = "INSERT INTO categoria_produto(categoria) VALUES (?)";
        pstmt = conexao.getConnection().prepareStatement(query);
        pstmt.setString(1, instancia.getCategoria());
        pstmt.execute();
        conexao.getConnection().commit();
        PreparedStatement ps = conexao.getConnection().prepareStatement(conexao.getConexao().getLastInsertID("categoria_produto", "id_categoria_produto"));
        ResultSet rs = ps.executeQuery();
        rs.next();
        int id = rs.getInt(1);
        instancia.setIdCategoriaProduto(id);
        ps.close();
        pstmt.close();
    }

    @Override
    public void atualizar(CategoriaProduto instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void salvarOuAtualizar(CategoriaProduto instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void excluir(CategoriaProduto instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean existe(CategoriaProduto instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public CategoriaProduto selecionar(CategoriaProduto instancia) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public List<CategoriaProduto> selecionarTodos() throws SQLException {
        List<CategoriaProduto> lista = new ArrayList<CategoriaProduto>();
        String query = "SELECT * FROM categoria_produto";
        pstmt = conexao.getConnection().prepareStatement(query);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            CategoriaProduto categoria = new CategoriaProduto();
            categoria.setIdCategoriaProduto(rs.getInt("id_categoria_produto"));
            categoria.setCategoria(rs.getString("categoria"));
            lista.add(categoria);
        }
        return lista;
    }
}
